<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .father {
            width: 400px;
            height: 400px;
            background-color: pink;
        }

        .son {
            width: 200px;
            height: 200px;
            background-color: green;
        }
    </style>
</head>

<body>
    <div class="father">
        <div class="son"></div>
    </div>

    <script>
        // 事件冒泡概念:
        // 当一个元素的事件被触发时，同样的事件将会再该元素的所有祖先元素中一次被触发。这一过程被称为事件冒泡
        // 简单理解：当一个院赛触发事件后，会一次向上调用所有父级元素的 同名事件
        // 事件冒泡是默认存在的
        // L2事件监听第三个参数是 false，或者默认都是冒泡

        const father = document.querySelector('.father')
        const son = document.querySelector('.son')

        document.addEventListener('click', function () {
            alert('我是document 我是最大的盒子')
        })

        father.addEventListener('click', function () {
            alert('我是father 我是第二的盒子')
        })

        // 组织事件默认行为
        son.addEventListener('click', function (e) {
            alert('我是son 我是第三的盒子')
            // 组织事件流动 除了冒泡还有捕获
            e.stopImmediatePropagation()
        })
    </script>
</body>

</html>